% 边缘检测回调函数
function edgeDetection(fig)
    data = guidata(fig);
    img = data.img;
    if isempty(img)
        msgbox('请先加载图像');
    else
        % 选择边缘检测方法
        method = 'sobel';  % 可选 'robert', 'prewitt', 'sobel', 'laplacian'
        
        switch method
            case 'robert'
                edge_img = robert_edge_detection(img);
            case 'prewitt'
                edge_img = prewitt_edge_detection(img);
            case 'sobel'
                edge_img = sobel_edge_detection(img);
            case 'laplacian'
                edge_img = laplacian_edge_detection(img);
            otherwise
                error('不支持的边缘检测方法');
        end
        
        % 显示边缘检测结果
        imshow(edge_img, 'Parent', data.ax);
        data.img = edge_img;
        guidata(fig, data); % 更新存储数据
    end
end
